<?php
class TrabajadorController extends AppController 
{
	var $name = 'Trabajador';
	var $layout =  "ajax";
	var $components = array('Interfaz','Vista');
	var $helpers = array('Interfaz','Vista','Ayuda');
	var $uses = array('Trabajador','Unidad','Organizacion','Perfil');
	public function beforeFilter(){
  		$this->validar();
  	}
  	
 	function index()
	{
 	}

 	public function listado_trabajador($busq=null) {
		$this->set('busq',$busq);
 		$this->permisos_menu_individual('Trabajador');
 		$condiciones["Trabajador.id >"]='0';
 		//$condiciones["Trabajador.idpadre"]='0';
 		$condiciones["Trabajador.estatus"]='1';
        $condiciones["Trabajador.organizacion_id"]=$this->Perfil->unidades($this->Interfaz->id($_SESSION['usuario_id']));
		$total=$this->Trabajador->find('count',array('conditions'=>$condiciones));
		$data=$this->Trabajador->find('all',array('fields' => array('Trabajador.id', 'Trabajador.rif', 'Trabajador.nombrecompleto', 'Unidad.nombre', 'Trabajador.sexo', 'Trabajador.parentesco', 'Trabajador.fecha_nacimiento', 'Trabajador.estatus', 'Trabajador.idpadre'), 'conditions'=> $condiciones, 'order'=>' Trabajador.certificado ASC,Trabajador.idpadre ASC,Trabajador.nombrecompleto ASC','limit'=>MAX_PAGI));
		if($total>MAX_PAGI) $mos=MAX_PAGI;
		else $mos=$total;
		$this->set('data',$data);
		$this->Vista->title('Encontrados (Mostrando '.$mos.' de '.$total.' Registros Encontrados)');
	}


 	public function listado_beneficiario($id=null,$busq=null,$tipo=null) {	 	
 		$this->permisos_opcion_individual('trabajador','estatus','eliminar');
 		$this->permisos_accion_individual('trabajador','beneficiario');
 		$id=$this->Interfaz->id($id);
		$total=$this->Trabajador->find('count',array('conditions'=> array("Trabajador.id >"=>'0',"Trabajador.idpadre ="=>$id,"Trabajador.idpadre <>"=>'0')));
		$data=$this->Trabajador->find('all',array('conditions'=> array("Trabajador.id >"=>'0',"Trabajador.idpadre ="=>$id,"Trabajador.idpadre <>"=>'0'),'order'=>'Trabajador.rif ASC,Trabajador.nombre ASC','limit'=>MAX_PAGI));
		$data1=$this->Trabajador->find('first',array('conditions'=> array("Trabajador.id >"=>'0',"Trabajador.id ="=>$id,"Trabajador.idpadre ="=>'0')));
		if($total>MAX_PAGI) $mos=MAX_PAGI;
		else $mos=$total;
		if($total==0){
		    $this->Vista->mensaje("El Trabajador no posee Beneficiarios",'ERROR');
			if($tipo==1){
			$this->listado_filtrado_trabajador();
			$this->render('listado_filtrado_trabajador');
	     	}else{
	     	$this->listado_trabajador();
			$this->render('listado_trabajador');
	     	}
		}
		else{
		 $this->set('busq',$busq);
		 $this->set('data',$data);
		 $this->set('data1',$data1);
		 $this->Vista->title('Beneficiarios Encontrados (Mostrando '.$mos.' de '.$total.' Registros Encontrados)');
	    }
	}


	public function nuevo($div='vista',$divlistado='vista') 
	{	
		$this->permisos_opcion_individual('trabajador','nuevo','estatus'); // mensaje que se quiere mostrar
		$this->set('div',$div);
		$this->set('divlistado',$divlistado);
		$this->set('lista_estados',$this->Utilitario->lista_estados());
		$this->set('lista_sexo',$this->lista_sexo());
        $condiciones['Organizacion.id']=$this->Perfil->unidades($this->Interfaz->id($_SESSION['usuario_id']));
        $this->set('lista_organizaciones',$this->Organizacion->find('list', array('fields' => array('Organizacion.id', 'Organizacion.nombre' ) ,'conditions'=> $condiciones)));
        $condiciones=null;
        $condiciones['Unidad.organizacion_id']=$this->Perfil->unidades($this->Interfaz->id($_SESSION['usuario_id']));
	}

	public function nuevo_afiliado($id=null,$tipo=null) 
	{	
		$this->permisos_opcion_individual('trabajador','estatus','agregar'); // mensaje que se quiere mostrar
		$id=$this->Interfaz->id($id);
		$datos=$this->Trabajador->find('first',array('conditions'=>array('Trabajador.id'=>$id)));
		$this->set('data',$datos);
		$this->set('lista_estados',$this->Utilitario->lista_estados());
        $this->set('lista_sexo',$this->lista_sexo());
        $this->set('lista_parentesco',$this->lista_parentesco());
	}


	public function guardar($vent=null) {
		$this->permisos_opcion_individual('trabajador','nuevo','estatus'); // mensaje que se quiere mostrar
		$data=$this->request->data;
        if(!$this->Vista->empyt($data,array('correo','celular','telefono','municipio_id','edad','direccion','estado_id'))){
			extract($data);
       $validaEdad=$this->Interfaz->calcular_edad($this->Utilitario->guar_fecha($fecha_nacimiento));
       if($validaEdad<18){ // no puede ingresar si tiene 21 años
       $this->Vista->mensaje("El trabajador debe ser mayor de edad ",'ERROR');
       echo "<script type='text/javascript'>
				    document.getElementById('fecha_nacimiento').value='';
				</script>"; 
	     } 
       else{
				$this->Trabajador->query('BEGIN WORK');
				$d['Trabajador']['rif']=$this->Interfaz->cedulasinguion($this->Utilitario->mayuscula($rif));
				$d['Trabajador']['certificado']=$this->Interfaz->cedulasinguion($this->Utilitario->mayuscula($rif));
				$d['Trabajador']['nombrecompleto']=$this->Utilitario->mayuscula($nombre);
				//$d['Trabajador']['nombre']=$this->Utilitario->mayuscula($nombre);
				//$d['Trabajador']['apellido']=$this->Utilitario->mayuscula($apellido);
				$d['Trabajador']['organizacion_id']=$organizacion_id;
				$d['Trabajador']['unidad_id']=$unidad_id;
				$d['Trabajador']['direccion']=$this->Utilitario->mayuscula($direccion);
				$d['Trabajador']['correo']=$this->Utilitario->mayuscula($correo);
				$d['Trabajador']['celular']=$celular;
				$d['Trabajador']['telefono']=$telefono;
				$d['Trabajador']['estado_id']=$estado_id;
				$d['Trabajador']['municipio_id']=$municipio_id;
				$d['Trabajador']['sexo']=$sexo;	
				$d['Trabajador']['parentesco']=0;	
				$d['Trabajador']['fecha_nacimiento']=$this->Utilitario->guar_fecha($fecha_nacimiento);	
				$d['Trabajador']['idpadre']=0;		
				$d['Trabajador']['estatus']=1;	
				$d['Trabajador']['fecha_ingreso']=date("Y-m-d"); 
					if($this->Trabajador->save($d)){
						$this->Vista->mensaje("Trabajador Guardado Exitosamente!!!",'EXITO');
						$this->Trabajador->query('COMMIT');
						$this->Vista->cerrar_ventana($vent);
					}
					else{
						$this->Vista->mensaje("Ocurrio un error actualizando Trabajador",'ERROR');
						$this->Trabajador->query('ROLLBACK');	
					}	
       }

			}		
			
		$this->listado_trabajador();
		$this->render('listado_trabajador');
	}


	public function guardar_afiliado($vent=null) {
		$this->permisos_opcion_individual('trabajador','estatus','agregar'); // mensaje que se quiere mostrar
		$data=$this->request->data;
		extract($data);
    $validaEdad=$this->Interfaz->calcular_edad($this->Utilitario->guar_fecha($fecha_nacimiento));
    if($parentesco==1 && $validaEdad>=21 && !empty($fecha_nacimiento)){ // no puede ingresar si tiene 21 años
       $this->Vista->mensaje("El beneficiario ya tiene $validaEdad años de edad, edad maxima 21 años",'ERROR');
       echo "<script type='text/javascript'>
				    document.getElementById('fecha_nacimiento').value='';
				</script>"; 
	  } 
		if($parentesco==1 && $validaEdad<15 && !empty($fecha_nacimiento))
			$validacion=array('rif','correo','celular','telefono','municipio_id','edad','direccion','estado_id');
        else
        	$validacion=array('correo','celular','telefono','municipio_id','edad');
        	if(!$this->Vista->empyt($data,$validacion)){
			$this->Trabajador->query('BEGIN WORK');
		    $d['Trabajador']['rif']=$this->Interfaz->cedulasinguion($this->Utilitario->mayuscula($rif));
		    $d['Trabajador']['nombrecompleto']=$this->Utilitario->mayuscula($nombre);
			//$d['Trabajador']['nombre']=$this->Utilitario->mayuscula($nombre);
			//$d['Trabajador']['apellido']=$this->Utilitario->mayuscula($apellido);
			$d['Trabajador']['unidad_id']=$unidad_id;
			$d['Trabajador']['organizacion_id']=$organizacion_id;
			$d['Trabajador']['direccion']=$this->Utilitario->mayuscula($direccion);
			$d['Trabajador']['correo']=$this->Utilitario->mayuscula($correo);
			$d['Trabajador']['celular']=$celular;
			$d['Trabajador']['telefono']=$telefono;
			$d['Trabajador']['estado_id']=$estado_id;
			$d['Trabajador']['municipio_id']=$municipio_id;	
			$d['Trabajador']['sexo']=$sexo;	
		//	$d['Trabajador']['edad']=$edad;	
			$d['Trabajador']['parentesco']=$parentesco;	
			$d['Trabajador']['fecha_nacimiento']=$this->Utilitario->guar_fecha($fecha_nacimiento);	
			$d['Trabajador']['idpadre']=$trabajador_id;	
			$d['Trabajador']['certificado']=$certificado;	
			$d['Trabajador']['estatus']=1;
			$d['Trabajador']['fecha_ingreso']=date("Y-m-d"); 	
				if($this->Trabajador->save($d)){
					$this->Vista->mensaje("Beneficiario Guardado Exitosamente!!!",'EXITO');
					$this->Trabajador->query('COMMIT');
					$this->Vista->cerrar_ventana($vent);
				}
				else{
					$this->Vista->mensaje("Ocurrio un error actualizando Trabajador",'ERROR');
					$this->Trabajador->query('ROLLBACK');	
				}	

			}		
			
		$this->listado_trabajador();
		$this->render('listado_trabajador');
	}


	public function dato_trabajador($rif=null){
		if(isset($rif)){
			$rif=$this->Interfaz->cedulasinguion($this->Utilitario->mayuscula($rif));
			$d=$this->Trabajador->find('first',array('conditions'=> array("Trabajador.rif"=>$rif, "Trabajador.estatus"=>1)));
			     
			     if(isset($d['Trabajador']['id']) && $d['Trabajador']['id'] > 0){
			     	$this->Vista->mensaje("¡El Beneficiario $rif ya existe!",'ERROR');  
				    echo "<script type='text/javascript'>
				    document.getElementById('rif').value='';
			        document.getElementById('nombre').value='';
			        document.getElementById('correo').value='';
					document.getElementById('organizacion_id').value='';
					document.getElementById('unidad_id').value='';
					document.getElementById('direccion').value='';
					document.getElementById('estado_id').value='';
					document.getElementById('municipio_id').value='';
				</script>";

			    }
		}
		$this->render("../".PRINCIPAL."/mensajes");
	}



	public function verificar_parentesco($id=null,$parentesco=null,$rif=null){
		if(isset($id)){
		
			$beneficiarios=$this->Trabajador->find('all',array('conditions'=> array("Trabajador.idpadre"=>$id,"Trabajador.estatus"=>'1',"Trabajador.id >"=>'0',"Trabajador.idpadre >"=>'0',"Trabajador.parentesco <>"=>'1')));
			$hijos=$this->Trabajador->find('count',array('conditions'=> array("Trabajador.idpadre"=>$id,"Trabajador.estatus"=>'1',"Trabajador.id >"=>'0',"Trabajador.idpadre >"=>'0',"Trabajador.parentesco"=>'1')));
			$trabajador=$this->Trabajador->find('first',array('conditions'=> array("Trabajador.id"=>$id,"Trabajador.estatus"=>'1',"Trabajador.id >"=>'0',"Trabajador.idpadre"=>'0')));    
			      for($i=0; $i<count($beneficiarios); $i++){
                      
				       if($parentesco!=1){
	                        if(isset($beneficiarios[$i]['Trabajador']['id']) && $beneficiarios[$i]['Trabajador']['parentesco'] == $parentesco){

					      	$this->Vista->mensaje("¡El parentesco ya existe!",'ERROR');  
					        echo "<script type='text/javascript'>
							document.getElementById('parentesco').value='';
							</script>";
						    }
                       }
                     
                       
			    }             
		}
		$this->render("../".PRINCIPAL."/mensajes");
	}





public function verificar_parentesco_modificar($id=null,$parentesco=null){
		if(isset($id)){
		
			$beneficiarios=$this->Trabajador->find('all',array('conditions'=> array("Trabajador.idpadre"=>$id,"Trabajador.estatus"=>'1',"Trabajador.id >"=>'0',"Trabajador.idpadre >"=>'0',"Trabajador.parentesco <>"=>'1')));
			      for($i=0; $i<count($beneficiarios); $i++){
              
	                       	if(isset($beneficiarios[$i]['Trabajador']['id']) && $beneficiarios[$i]['Trabajador']['parentesco'] == $parentesco){
					      	$this->Vista->mensaje("¡El parentesco ya existe!",'ERROR');
					      	  echo "<script type='text/javascript'>
						 	document.getElementById('parentesco').value='';
						</script>";  
					   
                       }
			    }
		}
		$this->render("../".PRINCIPAL."/mensajes");
	} 


	public function anular($id=null,$tipo=null)
	{
		$this->permisos_opcion_individual('trabajador','estatus','anular');
        $bandera=1;
		   if(isset($id)){
	            $this->Trabajador->query('BEGIN WORK');
				$id=$this->Interfaz->id($id);
				$datos=$this->Trabajador->find('first',array('fields'=>array('Trabajador.id','Trabajador.estatus'),'conditions'=>array('Trabajador.id'=>$id)));
				if(isset($datos['Trabajador']['id'])&&($datos['Trabajador']['estatus']==1)){			
					$data['Trabajador']['id']=$id;
					$data['Trabajador']['estatus']=2;
					$data['Trabajador']['fecha_egreso']=date("Y-m-d"); 
				
					if($this->Trabajador->save($data)){
                        $benediciarios=$this->Trabajador->find('all',array('fields'=>array('Trabajador.id','Trabajador.estatus'),'conditions'=>array('Trabajador.idpadre'=>$id, 'Trabajador.idpadre >'=>'0','Trabajador.estatus ='=>'1')));
						for($i=0; $i<count($benediciarios); $i++){
	                         $data2[$i]['Trabajador']['id']=$benediciarios[$i]['Trabajador']['id'];
					         $data2[$i]['Trabajador']['estatus']=2;
					         $data2[$i]['Trabajador']['fecha_egreso']=date("Y-m-d");
							if($this->Trabajador->save($data2[$i])){
								$bandera=$bandera*1;
							}
							else{
                            	$this->Vista->mensaje("Ocurrio un error Anulando el Trabajador",'ERROR');
								$bandera=0;
							    break;           
				        	}

						}

					
	                }
            		if($bandera){
						$this->Trabajador->query('COMMIT');
						$this->Vista->mensaje("Beneficiario Guardado Exitosamente!!!",'EXITO');

					}

				    else{
						$this->Vista->mensaje("Ocurrio un error Anulando el Trabajador",'ERROR');
						$this->Trabajador->query('ROLLBACK');
					} 
 
				}	
			}
			else{
				$this->Vista->mensaje("Estas intentando violar la seguridad agropatria",'ERROR');
			}

		    if($tipo==1){
				$this->listado_filtrado_trabajador();
				$this->render('listado_filtrado_trabajador');
	     	}else{
			 	$this->listado_trabajador();
				$this->render('listado_trabajador');
	     	}
	}

	public function anular_beneficiario($id=null)
	{
		$this->permisos_opcion_individual('trabajador','beneficiario','anular');
		   if(isset($id)){
				$id=$this->Interfaz->id($id);
				$datos=$this->Trabajador->find('first',array('fields'=>array('Trabajador.id','Trabajador.estatus'),'conditions'=>array('Trabajador.id'=>$id)));
				if(isset($datos['Trabajador']['id'])&&($datos['Trabajador']['estatus']==1)){			
					$data['Trabajador']['id']=$id;
					$data['Trabajador']['fecha_egreso']=date("Y-m-d"); 
					$data['Trabajador']['estatus']=2;
					$this->Trabajador->query('BEGIN WORK');
					if($this->Trabajador->save($data)){
						$this->Vista->mensaje("Beneficiario Anulado Exitosamente",'Exito');
						$this->Trabajador->query('COMMIT');
	                }
				  else{
						$this->Vista->mensaje("Ocurrio un error Anulando el Beneficiario",'ERROR');
						$this->Trabajador->query('ROLLBACK');
					} 
 
				}	
			}
			else{
				$this->Vista->mensaje("Estas intentando violar la seguridad agropatria",'ERROR');
				$this->Gasto->query('ROLLBACK');
			}

	     	$this->listado_trabajador();
			$this->render('listado_trabajador');   	
	     	
	}



	function lista_sexo(){	
		$sexo[1]='FEMENINO';
		$sexo[2]='MASCULINO';
		return $sexo;
	}

	function lista_parentesco(){	
		$parentesco[1]='HIJO/A';
		$parentesco[2]='MADRE';
		$parentesco[3]='PADRE';
		//$parentesco[4]='ESPOSO/A';
		$parentesco[5]='CONYUGUE';
		$parentesco[6]='MANUTENCION';
		return $parentesco;
	}

	public function reporte_excel_trabajadores($tipo,$busq=null){
		$this->set('busq',$busq);$this->set('tipo',$tipo);
		//$condiciones['Unidad.id']=$this->Perfil->unidades($this->Interfaz->id($_SESSION['usuario_id']));
		//$condiciones['Trabajador.id >']=0;
		$data = $this->_principal_buscador_reporte('Trabajador',$busq);
		//$data=$this->Trabajador->find('all',array('conditions'=> $condiciones,'order'=>'Trabajador.certificado ASC,Trabajador.idpadre ASC', 'LIMIT'=>10000));
		$this->set('data',$data);
	
	}

	public function reporte_pdf_trabajadores($busq=null) 
	{
		$this->set('busq',$busq);
		$condiciones['Unidad.id']=$this->Perfil->unidades($this->Interfaz->id($_SESSION['usuario_id']));
		$condiciones['Trabajador.id >']=0;
		$data=$this->Trabajador->find('all',array('conditions'=> $condiciones,'order'=>'Trabajador.certificado ASC,Trabajador.idpadre ASC'));
		$this->set('data',$data);

	}

	public function filtrado_trabajadores() {
	    $this->permisos_opcion_individual('trabajador','filtro','estatus'); // mensaje que se quiere mostrar
	    $condiciones['Organizacion.id']=$this->Perfil->unidades($this->Interfaz->id($_SESSION['usuario_id']));
        $this->set('lista_organizaciones',$this->Organizacion->find('list', array('fields' => array('Organizacion.id', 'Organizacion.nombre' ) ,'conditions'=> $condiciones)));
		$this->set('lista_unidades',$this->Unidad->find('list', array('fields' => array('Unidad.id', 'Unidad.nombre' ), 'conditions'=> array("Unidad.organizacion_id"=>2, "Unidad.estatus"=>1))));
		$this->set('lista_estados',$this->Utilitario->lista_estados());
		$this->set('lista_estatus',$this->lista_estatus());
	}

	function lista_estatus(){	
		$estatus[1]='ACTIVO';
		$estatus[2]='INACTIVO';
		return $estatus;
	}

	public function listado_filtrado_trabajadores($vent=null) {
    $data=$this->request->data;
	extract($data);
	$busq='';
	$this->set('opciones',$this->serializador($data,2));
	
	//$condiciones['Unidad.id']=$this->Perfil->unidades($this->Interfaz->id($_SESSION['usuario_id']));
	$condiciones['Trabajador.id >']=0;

	
    if(!empty($organizacion_id) && $organizacion_id>0){ $condiciones['Trabajador.organizacion_id']=$organizacion_id;}
	if(!empty($unidad_id) && $unidad_id>0){ $condiciones['Trabajador.unidad_id']=$unidad_id;}
	if(!empty($rif) ){ $condiciones['Trabajador.certificado ilike ']="%$rif%"; $busq=$rif;}
	if(!empty($nombre)){ $condiciones['Trabajador.nombrecompleto ilike ']="%$nombre%"; $busq=$nombre;}
	    
		if($status==1){
			if(!empty($desde) && !empty($hasta) ){ 
				$desde = $this->Interfaz->fecha($desde);
				$hasta = $this->Interfaz->fecha($hasta);
				$condiciones['Trabajador.fecha_ingreso BETWEEN ? AND ?']=array($desde,$hasta);
				$condiciones['Trabajador.estatus']=$status;
			    
		    }
		   
	    }

	    else if($status==2){
	    	if(!empty($desde) && !empty($hasta) ){ 
				$desde = $this->Interfaz->fecha($desde);
				$hasta = $this->Interfaz->fecha($hasta);
				$condiciones['Trabajador.fecha_egreso BETWEEN ? AND ?']=array($desde,$hasta);
			    $condiciones['Trabajador.estatus']=$status;
			 }  
	    }

	    else{
	    	$condiciones['Trabajador.estatus']=1;
	    }          
              
		$this->permisos_menu_individual('trabajador');
		$total=$this->Trabajador->find('count',array('conditions'=> $condiciones));
		$data=$this->Trabajador->find('all',array('fields' => array('Trabajador.id', 'Trabajador.rif', 'Trabajador.nombrecompleto', 'Unidad.nombre', 'Trabajador.sexo', 'Trabajador.parentesco', 'Trabajador.fecha_nacimiento', 'Trabajador.estatus', 'Trabajador.idpadre', 'Trabajador.certificado'), 'conditions'=> $condiciones,'order'=>' Trabajador.certificado ASC,Trabajador.idpadre ASC,Trabajador.nombrecompleto ASC','limit'=>MAX_PAGI));
		if($total>MAX_PAGI) $mos=MAX_PAGI;
		else $mos=$total;
		$this->set('data',$data);$this->set('busq',$busq);
		$this->Vista->title('Trabajadores Encontrados (Mostrando '.$mos.' de '.$total.' Registros Encontrados)');
		if($total>0)
		$this->Vista->cerrar_ventana($vent);
    
       
	}


	
	public function reporte_excel_filtrado_trabajadores($tipo,$opciones) {
		//$data=$this->request->data;
		$this->set('tipo',$tipo);
		$data=$this->serializador($opciones,1);
		//pr($data);
		if(is_array($data))
		{
		extract($data);
		//$condiciones['Unidad.id']=$this->Perfil->unidades($this->Interfaz->id($_SESSION['usuario_id']));
		$condiciones['Trabajador.id >']=0;
		//$condiciones['Trabajador.idpadre =']=0;
		if(!empty($unidad_id) && $unidad_id>0){ $condiciones['Trabajador.unidad_id']=$unidad_id;}
		if(!empty($organizacion_id) && $organizacion_id>0){ $condiciones['Trabajador.organizacion_id']=$organizacion_id;}
		if(!empty($rif) ){ $condiciones['Trabajador.rif ilike ']="%$rif%"; $busq=$rif;}
		if(!empty($nombre)){ $condiciones['Trabajador.nombrecompleto ilike ']="%$nombre%"; $busq=$nombre;}
		//if(!empty($status)){ $condiciones['Trabajador.estatus']=$status;}
		

        if(empty($status)){ $status=1; }

		if($status==1){
			if(!empty($desde) && !empty($hasta) ){ 
				$desde = $this->Interfaz->fecha($desde);
				$hasta = $this->Interfaz->fecha($hasta);
				$condiciones['Trabajador.fecha_ingreso BETWEEN ? AND ?']=array($desde,$hasta);
			    
		    }
		   
	    }

	    else if($status==2){
	    	if(!empty($desde) && !empty($hasta) ){ 
				$desde = $this->Interfaz->fecha($desde);
				$hasta = $this->Interfaz->fecha($hasta);
				$condiciones['Trabajador.fecha_egreso BETWEEN ? AND ?']=array($desde,$hasta);
			    
			 }  
	    }

	    else{
	    	if(!empty($status)){ $condiciones['Trabajador.status']=$status;}	
	    }         
         
        //$this->permisos_menu_individual('trabajador');
       // $total=$this->Trabajador->find('count',array('conditions'=> $condiciones));
		$data=$this->Trabajador->find('all',array('fields' => array('Trabajador.id', 'Trabajador.rif', 'Trabajador.nombrecompleto', 'Unidad.nombre', 'Trabajador.sexo', 'Trabajador.parentesco', 'Trabajador.fecha_nacimiento', 'Trabajador.estatus', 'Trabajador.idpadre', 'Trabajador.certificado', 'Organizacion.nombre'), 'conditions'=> $condiciones,'order'=>' Trabajador.certificado ASC,Trabajador.idpadre ASC,Trabajador.nombrecompleto ASC','limit'=>10000));
		//pr($data);
		//die();
		/*$data_titulares=$this->Trabajador->find('all',array('conditions'=> $condiciones,'order'=>'Trabajador.certificado ASC'));
        $data_final=array();



        for($i=0; $i<count($data_titulares); $i++){
        $condiciones_titulares['Trabajador.certificado ilike ']=$data_titulares[$i]['Trabajador']['certificado'];
        $data=$this->Trabajador->find('all',array('conditions'=>  $condiciones_titulares,'order'=> 'Trabajador.certificado ASC, Trabajador.idpadre ASC, Trabajador.rif ASC'));
	        foreach ($data as $valor) {
	        $data_final[]=$valor;
	        }
        }*/
		$this->set('data',$data);
		
	    }
		else
		{
			echo "ESTAS INTENTANDO VIOLAR LA SEGURIDAD AGROPATRIA";
		}
	
	}

	public function reporte_pdf_filtrado_trabajadores($tipo,$opciones) {
		$data=$this->request->data;
		$this->set('tipo',$tipo);
		$data=$this->serializador($opciones,1);
		if(is_array($data))
		{
		extract($data);
	     	$condiciones['Unidad.id']=$this->Perfil->unidades($this->Interfaz->id($_SESSION['usuario_id']));
			$condiciones['Trabajador.id >']=0;
			$condiciones['Trabajador.idpadre']=0;
			if(!empty($unidad_id) && $unidad_id>0){ $condiciones['Trabajador.unidad_id']=$unidad_id;}
			if(!empty($rif) ){ $condiciones['Trabajador.rif ilike ']="%$rif%"; $busq=$rif;}
			if(!empty($nombre)){ $condiciones['Trabajador.nombrecompleto ilike ']="%$nombre%"; $busq=$nombre;}
			if(!empty($status)){ $condiciones['Trabajador.estatus']=$status;
	    }
		$data_titulares=$this->Trabajador->find('all',array('conditions'=> $condiciones,'order'=>'Trabajador.certificado ASC'));
        $data_final=array();
        for($i=0; $i<count($data_titulares); $i++){
        $condiciones_titulares['Trabajador.certificado ilike ']=$data_titulares[$i]['Trabajador']['certificado'];
        $data=$this->Trabajador->find('all',array('conditions'=>  $condiciones_titulares,'order'=> 'Trabajador.certificado ASC, Trabajador.idpadre ASC, Trabajador.rif ASC'));
	        foreach ($data as $valor) {
	        $data_final[]=$valor;
	        }
        }
		$this->set('data',$data_final);
	    }
		else
		{
			echo "ESTAS INTENTANDO VIOLAR LA SEGURIDAD AGROPATRIA";
		}
	
	}


	public function ver_dato_trabajador($id=null) {
		$this->permisos_opcion_individual('trabajador','estatus','ver');
		if(isset($id)){
			$id=$this->Interfaz->id($id);
			$datos=$this->Trabajador->find('first',array('conditions'=>array('Trabajador.id'=>$id)));

		if(isset($datos['Trabajador']['id'])){
			$this->set('div',$div);
			$this->set('divlistado',$divlistado);
			$this->set('lista_municipios',$this->Utilitario->lista_municipios($datos['Trabajador']['estado_id']));
			$this->set('lista_estados',$this->Utilitario->lista_estados());
			$this->set('lista_sexo',$this->lista_sexo());
			$this->set('lista_unidad',$this->Unidad->find('list', array('fields' => array('Unidad.id', 'Unidad.nombre' ))));
			$this->set('lista_organizaciones',$this->Organizacion->find('list', array('fields' => array('Organizacion.id', 'Organizacion.nombre' ))));
			$this->set('data',$datos);
		}

			else{
				$this->Vista->mensaje("Estas intentando violar la seguridad agropatria",'ERROR');
				$this->render("../".PRINCIPAL."/mensajes");
			}			
		}
		else{
			$this->Vista->mensaje("Debes Indicar el Gasto!!!",'INFORMACION');
			$this->render("../".PRINCIPAL."/mensajes");
		}
	}

	public function modificar_dato_trabajador($id=null) {
		$this->permisos_opcion_individual('trabajador','estatus','modificar');
		if(isset($id)){
			$id=$this->Interfaz->id($id);
			$datos=$this->Trabajador->find('first',array('conditions'=>array('Trabajador.id'=>$id)));

		if(isset($datos['Trabajador']['id'])){
			$this->set('div',$div);
			$this->set('divlistado',$divlistado);
			$this->set('lista_estados',$this->Utilitario->lista_estados());
			if(isset($datos['Trabajador']['estado_id']) && $datos['Trabajador']['estado_id'] > 0)
				$this->set('lista_municipios',$this->Utilitario->lista_municipios($datos['Trabajador']['estado_id']));
			else
				$this->set('lista_municipios',null); 
			$this->set('lista_sexo',$this->lista_sexo());
			//$condiciones['Unidad.id']=$this->Perfil->unidades($this->Interfaz->id($_SESSION['usuario_id']));
			$this->set('lista_unidad',$this->Unidad->find('list', array('fields' => array('Unidad.id', 'Unidad.nombre' ),'conditions'=> array("Unidad.organizacion_id"=>$datos['Trabajador']['organizacion_id']))));
			$this->set('lista_organizaciones',$this->Organizacion->find('list', array('fields' => array('Organizacion.id', 'Organizacion.nombre' ), 'conditions'=>array("Organizacion.id"=>$this->Perfil->unidades($this->Interfaz->id($_SESSION['usuario_id']))))));
			$this->set('data',$datos);
			$this->set('id',$id); 
		}

			else{
				$this->Vista->mensaje("Estas intentando violar la seguridad agropatria",'ERROR');
				$this->render("../".PRINCIPAL."/mensajes");
			}			
		}
		else{
			$this->Vista->mensaje("Debes Indicar el Gasto!!!",'INFORMACION');
			$this->render("../".PRINCIPAL."/mensajes");
		}
	}

	public function modificar($id=null,$vent=null)
	{
		$data=$this->request->data;
		$this->permisos_opcion_individual('trabajador','estatus','modificar');

    if(!$this->Vista->empyt($data,array('correo','celular','telefono','municipio_id','edad','direccion','estado_id'))){
			  extract($data);
       $validaEdad=$this->Interfaz->calcular_edad($this->Utilitario->guar_fecha($fecha_nacimiento));
       if($validaEdad<18){ // debe ser mayor de edad el trabajador
           $this->Vista->mensaje("El trabajador debe ser mayor de edad ",'ERROR');
           echo "<script type='text/javascript'>
				    document.getElementById('fecha_nacimiento').value='';
				    </script>"; 
	     } 
       else{
           
		   
			if(isset($id))	{
				$bandera=true;
				$this->Trabajador->query('BEGIN WORK');
				$id=$this->Interfaz->id($id);
				$datos=$this->Trabajador->find('first',array('conditions'=>array('Trabajador.id'=>$id)));
				$data['Trabajador']['id']=$id;
				$data['Trabajador']['nombrecompleto']=$this->Utilitario->mayuscula($nombre);
				$data['Trabajador']['rif']=$this->Interfaz->cedulasinguion($this->Utilitario->mayuscula($rif));
				//$data['Trabajador']['nombre']=$this->Utilitario->mayuscula($nombre);
				//$data['Trabajador']['apellido']=$this->Utilitario->mayuscula($apellido);
				$data['Trabajador']['sexo']=$sexo;
				$data['Trabajador']['fecha_nacimiento']=$this->Utilitario->guar_fecha($$fecha);
				$data['Trabajador']['correo']=$this->Utilitario->mayuscula($correo);
				$data['Trabajador']['celular']=$celular;
				$data['Trabajador']['telefono']=$telefono;
				$data['Trabajador']['unidad_id']=$unidad_id;
				$data['Trabajador']['organizacion_id']=$organizacion_id;
				$data['Trabajador']['direccion']=$this->Utilitario->mayuscula($direccion);
				$data['Trabajador']['estado_id']=$estado_id;
				$data['Trabajador']['municipio_id']=$municipio_id;

				if($this->Trabajador->save($data)) {
					$benediciarios=$this->Trabajador->find('all',array('fields'=>array('Trabajador.id','Trabajador.unidad_id'),'conditions'=>array('Trabajador.idpadre'=>$id, 'Trabajador.idpadre >'=>'0')));
					for($i=0; $i<count($benediciarios); $i++){
						$data2[$i]['Trabajador']['id']=$benediciarios[$i]['Trabajador']['id'];
						$data2[$i]['Trabajador']['organizacion_id']=$organizacion_id;
						$data2[$i]['Trabajador']['unidad_id']=$unidad_id;
						if($this->Trabajador->save($data2[$i])){
							$bandera = $bandera && true;
						}
						else{
							$bandera=$bandera && false;
							$this->Vista->mensaje("Ocurrio un error Modificado el Trabajador",'ERROR');
							break;
						}
					}
					if($bandera){
					$this->Vista->mensaje("Trabajador Modificado Exitosamente",'Exito');
					$this->Trabajador->query('COMMIT');
					$this->Vista->cerrar_ventana($ventana_mod_tra);
					}
					else{
						$this->Vista->mensaje("Ocurrio un error Modificando el Trabajador",'ERROR');
						$this->Trabajador->query('ROLLBACK');
					} 
			}
										
		}
		else{
			$this->Vista->mensaje("Estas intentando violar la seguridad agropatria",'ERROR');

		}
   }
     }
			$this->listado_trabajador();
			$this->render('listado_trabajador');
	     	
	}

	public function modificar_beneficiario($id=null,$vent=null)
	{
		$data=$this->request->data;
		$this->permisos_opcion_individual('trabajador','beneficiario','modificar');
		extract($data); 
    $validaEdad=$this->Interfaz->calcular_edad($this->Utilitario->guar_fecha($fecha_nacimiento));
    if($parentesco==1 && $validaEdad>=21 && !empty($fecha_nacimiento)){ // no puede ingresar si tiene 21 años
       $this->Vista->mensaje("El beneficiario ya tiene $validaEdad años de edad, edad maxima 21 años",'ERROR');
       echo "<script type='text/javascript'>
				    document.getElementById('fecha_nacimiento').value='';
				</script>"; 
	  } 
		if($parentesco==1 && $validaEdad<15 && !empty($fecha_nacimiento))
			 $validacion=array('rif','correo','celular','telefono','municipio_id','edad');
    else
        $validacion=array('correo','celular','telefono','municipio_id','edad','direccion','estado_id');

    if(!$this->Vista->empyt($data,$validacion)){ 

		   if(isset($id)){
          $this->Trabajador->query('BEGIN WORK');
		   		$id=$this->Interfaz->id($id);
				$datos=$this->Trabajador->find('first',array('conditions'=>array('Trabajador.id'=>$id)));
					$data['Trabajador']['id']=$id;
					$data['Trabajador']['nombrecompleto']=$this->Utilitario->mayuscula($nombre);	
					$data['Trabajador']['rif']=$this->Interfaz->cedulasinguion($this->Utilitario->mayuscula($rif));
					//$data['Trabajador']['nombre']=$this->Utilitario->mayuscula($nombre);
					//$data['Trabajador']['apellido']=$this->Utilitario->mayuscula($apellido);
					$data['Trabajador']['sexo']=$sexo;
					$data['Trabajador']['fecha_nacimiento']=$this->Utilitario->guar_fecha($$fecha);
					$data['Trabajador']['correo']=$this->Utilitario->mayuscula($correo);
					$data['Trabajador']['celular']=$celular;
					$data['Trabajador']['telefono']=$telefono;
					$data['Trabajador']['direccion']=$this->Utilitario->mayuscula($direccion);
				    $data['Trabajador']['estado_id']=$estado_id;
				    $data['Trabajador']['municipio_id']=$municipio_id;
					$this->Trabajador->query('BEGIN WORK');	
					if($this->Trabajador->save($data)){
                    $this->Vista->mensaje("Beneficiario Modificado Exitosamente",'Exito');
					$this->Trabajador->query('COMMIT');
					$this->Vista->cerrar_ventana($ventana_ben);
				    }
				    else{
		            $this->Vista->mensaje("Ocurrio un error Modificado el Trabajador",'ERROR');
				    $this->Trabajador->query('ROLLBACK');
					}
			}
			else{
							$this->Vista->mensaje("Estas intentando violar la seguridad agropatria",'ERROR');
							$this->Trabajador->query('ROLLBACK');
		  }
    }
			
			
			$this->listado_trabajador();
			$this->render('listado_trabajador');

	     	
	}

	

	
public function modificar_dato_beneficiario($id=null) {
		$this->permisos_opcion_individual('trabajador','beneficiario','modificar');
		if(isset($id)){
			$id=$this->Interfaz->id($id);
			$datos=$this->Trabajador->find('first',array('conditions'=>array('Trabajador.id'=>$id)));

		    $data1=$this->Trabajador->find('first',array('conditions'=> array("Trabajador.id >"=>'0',"Trabajador.id ="=>$datos['Trabajador']['idpadre'],"Trabajador.idpadre ="=>'0')));
		if(isset($datos['Trabajador']['id'])){
			$this->set('div',$div);
			$this->set('divlistado',$divlistado);
			$this->set('lista_estados',$this->Utilitario->lista_estados());
			$this->set('lista_municipios',$this->Utilitario->lista_municipios($datos['Trabajador']['estado_id']));
			$this->set('lista_sexo',$this->lista_sexo());
			$this->set('lista_unidad',$this->Unidad->find('list', array('fields' => array('Unidad.id', 'Unidad.nombre' ))));
			$this->set('lista_organizaciones',$this->Organizacion->find('list', array('fields' => array('Organizacion.id', 'Organizacion.nombre' ))));
			$this->set('data',$datos);
			$this->set('lista_parentesco',$this->lista_parentesco());
			$this->set('id',$id); 
		    $this->set('data1',$data1);


		}

			else{
				$this->Vista->mensaje("Estas intentando violar la seguridad agropatria",'ERROR');
				$this->render("../".PRINCIPAL."/mensajes");
			}			
		}
		else{
			$this->Vista->mensaje("Debes Indicar el Gasto!!!",'INFORMACION');
			$this->render("../".PRINCIPAL."/mensajes");
		}
	}


public function ver_dato_beneficiario($id=null,$vent=null)
	 {
		$this->permisos_opcion_individual('trabajador','beneficiario','ver');
		if(isset($id)){
			$id=$this->Interfaz->id($id);
			$datos=$this->Trabajador->find('first',array('conditions'=>array('Trabajador.id'=>$id)));

		    $data1=$this->Trabajador->find('first',array('conditions'=> array("Trabajador.id >"=>'0',"Trabajador.id ="=>$datos['Trabajador']['idpadre'],"Trabajador.idpadre ="=>'0')));
		if(isset($datos['Trabajador']['id'])){
			$this->set('div',$div);
			$this->set('divlistado',$divlistado);
			$this->set('lista_estados',$this->Utilitario->lista_estados());
			$this->set('lista_municipios',$this->Utilitario->lista_municipios($datos['Trabajador']['estado_id']));
			$this->set('lista_sexo',$this->lista_sexo());
			$this->set('lista_unidad',$this->Unidad->find('list', array('fields' => array('Unidad.id', 'Unidad.nombre' ))));
			$this->set('lista_organizaciones',$this->Organizacion->find('list', array('fields' => array('Organizacion.id', 'Organizacion.nombre' ))));
			$this->set('data',$datos);
			$this->set('lista_parentesco',$this->lista_parentesco());
			$this->set('id',$id); 
		    $this->set('data1',$data1);


		}

			else{
				$this->Vista->mensaje("Estas intentando violar la seguridad agropatria",'ERROR');
				$this->render("../".PRINCIPAL."/mensajes");
			}			
		}
		else{
			$this->Vista->mensaje("Debes Indicar el Gasto!!!",'INFORMACION');
			$this->render("../".PRINCIPAL."/mensajes");
		}
	}

	public function calcular_edad($fecha)
	 {
	 $edad=0;
	 if(!empty($fecha)){
	 $fecha=$this->Utilitario->guar_fecha($fecha);
	 $edad= floor((time() - strtotime($fecha)) / 31556926);
	 $this->set('edad',$edad);
	 }
	 else
 	 $this->render('calcular_edad_vacia');
	}




}
